package cn.csc.module.order.convert.addr;

import java.util.*;

import cn.csc.framework.common.pojo.PageResult;

import cn.csc.module.member.api.address.dto.MemberAddressRespDTO;
import cn.csc.module.order.api.order.dto.OrderAddrDTO;
import cn.csc.module.order.controller.app.vo.OrderAddrVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import cn.csc.module.order.controller.admin.addr.vo.*;
import cn.csc.module.order.dal.dataobject.addr.OrderAddrDO;

/**
 * 用户订单配送地址 Convert
 *
 * @author liuchuang
 */
@Mapper
public interface OrderAddrConvert {

    OrderAddrConvert INSTANCE = Mappers.getMapper(OrderAddrConvert.class);

    OrderAddrDO convert(OrderAddrCreateReqVO bean);

    OrderAddrDO convert(OrderAddrUpdateReqVO bean);

    OrderAddrRespVO convert(OrderAddrDO bean);

    List<OrderAddrRespVO> convertList(List<OrderAddrDO> list);

    PageResult<OrderAddrRespVO> convertPage(PageResult<OrderAddrDO> page);

    List<OrderAddrExcelVO> convertList02(List<OrderAddrDO> list);

    OrderAddrCreateReqVO convert(MemberAddressRespDTO addressRespDTO);

    OrderAddrVO convertVo(OrderAddrDO bean);

    OrderAddrDTO convertDto(OrderAddrDO bean);

    OrderAddrExcelVO convert02(OrderAddrDO bean);

    OrderAddrVO convert03(MemberAddressRespDTO bean);

    List<OrderAddrDO> convertList01(List<OrderAddrUpdateReqVO> updateReqVO);

}
